package com.woniuxy.lab.woniu_lab_boss.controller.form;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.w3c.dom.stylesheets.LinkStyle;

import java.math.BigDecimal;
import java.util.ArrayList;

@Data
@ApiModel("上传靶场表单")
public class UploadRangeForm {

    /**
     * 靶场名称
     */
    @ApiModelProperty(value = "靶场名")
    private String name;

    /**
     * 文件类型 doker/war/zip/other (压缩包不能超过100M)
     */
    @ApiModelProperty(value = "靶场类型", allowableValues = "doker/war/zip/other")
    private String fileType;

    /**
     * 文件路径(防止名字冲突)
     */
    @ApiModelProperty(value = "文件路径")
    private String filePath;

    /**
     * 难度(low/middle/high)
     */
    @ApiModelProperty(value = "难度", allowableValues = "low/middle/high")
    private String level;

    /**
     * 所属分类(扫描类、文件类、SQL注入类、XSS类、CSRF类、SSRF类、代码执行、命令执行、文件上传类、文件包含类、反序列化类、Redis类、内网渗透类)
     */
    @ApiModelProperty(value = "标签分类", allowableValues = "扫描类、文件类、SQL注入类、XSS类、CSRF类、SSRF类、代码执行、命令执行、文件上传类、文件包含类、反序列化类、Redis类、内网渗透类")
    private String rangeType;

    /**
     * 定价(蜗牛币)
     */
    @ApiModelProperty(value = "定价")
    private BigDecimal price;

    /**
     * 答案
     */
    @ApiModelProperty(value = "flag")
    private String flag;

    /**
     * 操作次数(防止作弊)
     */
    @ApiModelProperty(value = "最小操作次数")
    private Integer optCount;

    /**
     * 积分
     */
    @ApiModelProperty(value = "积分")
    private Integer score;

    /**
     * 实验类型ctf/exper
     */
    @ApiModelProperty(value = "实验类型", allowableValues = "ctf/exper")
    private String ctfOrExper;

    /**
     * 实验名称
     */
    @ApiModelProperty(value = "实验名称")
    private String experName;

    /**
     * 实验简介(不能超过500字)
     */
    @ApiModelProperty(value = "实验简介")
    private String introduce;

    /**
     * 实验手册
     */
    @ApiModelProperty(value = "实验手册")
    private String manual;

    /**
     * 实验封面地址
     */
    @ApiModelProperty(value = "实验封面路径")
    private String pic;

    // 内部端口
    @ApiModelProperty(value = "内部端口号")
    private String port;

    // 内部卷路径
    @ApiModelProperty(value = "内部卷路径")
    private String path;

    @ApiModelProperty(value = "基础镜像id")
    private ArrayList<String> baseIds;

    @ApiModelProperty(value = "访问uri")
    private String uri;


}
